质量>数量!数据对大型语言模型(LLM)整个生命周期的影响!
点击上方“AINLPer“,设为星标
引言
自去年底ChatGPT发布以来,大型语言模型(LLM)的性能极大的吸引了人们的注意力。在此过程中,我们逐渐的开始思考当前LLM发展过程。相比传统的自然语言模型,LLMs为什么能做到如此令人印象深刻的效果?针对该问题,尽管人们争论不断,但一项特别有影响力的进步是执行对齐的能力,这是毋庸置疑的。通俗来说,不管是通过指令信息还是检索信息,「人类已经明白如何训练LLM,使其不仅能够准确预测出下一个单词,而且输出的文本还能满足人们的目标」。
今天给大家分享的这篇文章将主要「研究对齐的作用与影响,以及对齐和预训练之间的相互作用」。比如,最近的 LIMA 模型就探索了此类想法,该模型仅使用1000个半手工标注的高质量示例微调预训练LLM来执行对齐。尽管对齐对于LLM来说至关重要,但是LLM的模型风格、模型知识基本都是在模型预训练期间获得的。因此,即使用最少的训练数据也可以成功执行对齐。然而,我们也将看到「数据质量与多样性对LLM对齐、预训练、微调的影响非常大」。
LLM训练过程
LLMs的训练基本上可以分为两个阶段:(1)从原始文本进行无监督预训练,以学习通用表示;(2)大规模指令调整和强化学习,以更好地适应最终任务和用户偏好。尽管近几个月来人们从各种不同的角度对语言模型进行了研究,但这些模型的创建往往遵循具有一些共同组件的标准化流程,如下图所示:
LLMs预训练
如下图所示,预训练过程是创建LLMs过程中计算成本最高的步骤。
LLMs对齐
预训练完成后,就有了一个“基础模型”,或者说是一个尚不具备任何专业能力的通用LLM。为了赋予模型对话、遵循指令等的能力,还必须对这个模型进行调整,或者训练它来模仿人类用户所需的行为。在大多数情况下,对齐过程基于两种主要技术:监督微调 (SFT)、基于人类反馈的强化学习 (RLHF),如下图所示。这些技术可以单独使用,也可以通过依次执行来组合在一起。ChatGPT的前身(InstructGPT)就是采用了相互组合的方法。
LLMs模型应用
一旦LLM经过预训练和调优,它基本上就可以在下游应用程序中使用。然而,我们必须采取一些措施来确保LLM准确地解决特定的任务。通常,这主要是通过进一步微调模型,或者使用上下文学习来完成的。如下图所示:
「上下文学习」。一旦我们准备好了部署模型,尽管我们没有做特定领域的微调,我们也应该利用上下文学习。因为使用文本提示来引导模型实现相关输出,能够让LLMs更准确地解决下游任务。这些文本提示可能包括正确解决方案的示例(即,少数样本),但该数据仅由模型在生成输出时使用,并不能将其用于训练。关于上下文学习Prompt的介绍,小伙伴可以参考我之前写的两篇文章:
LIMA
Zhou等人通过训练 LIMA(LLaMA-65B的衍生模型)来研究预训练与对齐的相对重要性,LIMA在精选的对齐数据集上进行SFT(无 RLHF)。特别是,LIMA 使用的微调数据集由1000个精心制作的示例组成,具有相似的输出风格和不同的输入。如下图所示:
「表面对齐假说」。根据以上实验结果,Zhou等人提出了表面对齐假说 (SAH),上面的引文对此进行了总结。LLM的大部分核心知识都是在预训练期间学习的,而对齐则是寻找正确的格式来呈现这些知识。SAH简单地指出,在给定一组具有足够质量和多样性的示例的情况下,可以通过数据有效的方式学习对齐。
「整理数据实现对齐」。Zhou等人用于对齐的数据集是由社区 QA 论坛(例如 StackExchange、wikiHow 和 Reddit)和手动编写的示例相结合构建的。与最近自动化SFT数据整理的工作不同,Zhou等人制作的数据都经过仔细(通常是手动)过滤,以保证质量和多样性。尽管手动管理需要时间,但它提高了生成数据集的质量,这个发现是非常有益的。
简而言之,我们希望最大限度地减少对齐数据集中的干扰(即确保统一的风格、语气、格式等),同时确保 LLM 观察到的数据具有尽可能多的种类和覆盖范围。值得注意的是,Zhou等人甚至在对齐数据中包含了一些恶意提示,以演示如何避免潜在有害的命令。
可实现自动化吗?
在最近使用开源LLMs进行模仿学习的研究中,我们通常会看到用于微调的数据是自动管理的。例如,SFT 的数据可以从在线资源(例如 ShareGPT)下载,也可以直接从 ChatGPT 或 GPT-4 的 LLM API 获取。与手动管理相比,这种方法非常高效,并且甚至在某些情况下效果很好;例如,Mukherjee等人经过从 ChatGPT/GPT-4 获得的大量对话的训练,并且表现相当好(甚至与顶级模型相比)。然而,在Gudibande等人的工作中发现,以这种方式训练的模型通常存在局限性,并且在进行广泛分析时表现不佳。
对于Zhou等人的工作,他们没有自动获取大量数据,而是手动过滤并选择较少的示例。这种规模较小(但劳动密集型)的选择过程可以控制数据的多样性和质量,这说明了「数据规模和质量对LLM对齐的影响」。
对齐是表面上的吗?
LIMA 的性能与多种不同语言模型的性能进行了比较。特别是,我们看到 LIMA 的性能与 Alpaca-65B、DaVinci003(即 GPT-3.5 的 RLHF 调整版本)、Bard(即基于PaLM)、Claude(52B参数 LLM)和 GPT-4 进行比较。使用众包工作者和 GPT-4 的自动反馈进行评估,如上图所示。可以发现,LIMA 的性能始终优于 Alpaca,甚至在相当多的情况下匹配或超过了Claude和GPT-4的质量。鉴于这些其他模型经过数百万用户提示和反馈的训练,LIMA 的竞争表现令人印象深刻。
数据有用属性
除了上面概述的主要结果之外,我们在Zhou等人的消融实验中看到,用于对齐的示例的多样性和质量非常重要。值得注意的是,仅仅增加微调数据集的大小并不总能提高 LLM 的性能。因此,仔细管理高质量数据以进行对齐是很有价值的。
质量>数量
即使在模仿模型的研究中,我们也发现仅增加微调集中的数据量对底层模型性能的影响很小;如下图所示。
鉴于仅增加数据量不会产生任何好处,我们有2种不同的选择来提高法LLMs的表现:
创建更强大的基础训练数据集 改进对齐数据集
虽然一些工作(例如 MPT 和 Falcon)已经探索了更好的基础模型的创建,但 LIMA 研究了如何创建更好的对齐数据集。简而言之,创建一个既多样化又高质量的比对数据集(即使它很小!)是非常有效的。LLMs可以根据最少的数据准确地学习模拟某些行为。
但是,这些模型的验证结果并不完美!之前的模仿模型最初被认为表现得非常好,甚至可以与 ChatGPT 等顶级专有模型相媲美。然而,我们后来发现,「这样的结论是人为错误的产物。这些模型模仿了专有的 LLMS 的风格,但缺乏真实性,并且在训练集之外的泛化能力较差,人类在评估这些模型时更难以推断出这一点」。鉴于 LIMA 也主要由众包工作者进行评估,Zhou等人的结果也受到类似的限制。然而,我们看到 LIMA 往往具有良好的泛化能力,并且常常优于 Alpaca 等模仿模型,这表明高质量的比对数据仍然对 LLM 的表现非常有利。
数据>对齐
&emsp通过前面的讨论,可以发现数据质量对于语言模型的调优非常重要。然而,数据质量和多样性的重要性不仅仅在于对齐——所使用的数据的类型和质量影响着LLM训练过程的各个方面。
「预训练」。在各种不同的模型中,我们发现用于预训练的数据质量非常重要。例如,在Galactica中,作者发现,在较小的、精心策划的高质量科学信息数据集上进行训练可以产生最佳性能。同样,BioMedLM 模型是在较小的、精选的技术内容语料库上进行预训练的。最后,Falcon-40B(目前最先进的开源语言模型)非常重视预训练数据的质量,我们看到作者投入了大量精力来开发一种新颖且高效的模型用于从网络中提取高质量预训练数据的管道。
「对齐」。除了LIMA中探索的方法之外,最近提出的 Orca 模型还深入研究了数据质量在解决对齐问题中的作用。然而,采用了稍微不同的方法。也就是说,作者使用模仿方法训练模型,但使用模型中有关如何解决每个问题的详细信息来扩充用于 SFT 的数据(即与其他LLMs的对话示例)。研究发现,在对齐数据集中包含这些额外的细节可以产生比Alpaca 或 Vicuna等模型更加稳健的模仿模型。
「上下文学习」。除了训练和微调LLMs之外,用于上下文/少量学习的数据也会极大地影响性能。特别是,最近对少样本学习的研究表明,样本的排序、分布或格式等因素可能会影响模型的性能。更进一步,我们发现数据的多样性非常重要,其中由不同群体的少数样本提示的模型往往表现更好。请查看下面的链接以进行更深入的讨论。
总结
对于LLMs来说,高质量数据的影响远远超出对齐,更高质量的数据将有益于LLMs的各个方面。无论是在预训练还是在上下文学习期间,语言模型从根本上仍然遵循与所有机器学习模型的基本规则:“垃圾输入,垃圾输出”。
推荐阅读
[5]ACL2023|知识图谱(KG)检索新框架--DiFaR